The processing time taken for Error Checking and Correcting (ECC) in a magnetic storage apparatus continues to increase. For example, sometimes when LDPC is employed in decoding, decoding processing is repeated several times for data that fails in decoding.
Traditionally sector data is returned in the sequence of read gate assertion, controlling such that the sequence of sectors read from a medium matches the sequence of sectors transferred to a buffer. Therefore, with for example a Low Density Parity Check (LDPC), when coding is employed where sometimes a significant period of time is required until decoding is completed, when a particular sector takes a significant period of time to decode then subsequent sectors cannot be output to a buffer even if they have completed decoding. To address this issue a large buffer is provided to an ECC controller, and control is made such that the subsequent sectors wait in turn for output to the buffer.
Alternatively, when configuration is made such that sectors can be transferred to a buffer in the sequence with which they complete decoding then a region of continuous space needs to be reserved in the buffer for the sector(s) with prior read gate assertion.
A technology is described in related art in which a storage device for storing data of a portion of a two dimensional data array is provided, data from another device is stored in sequence on the storage device, the sequence of data on the storage device is changed, and then the data is read out and transferred to a control device. However, a prerequisite of the technology employed here is that data is handled as a two dimensional data array and it is not a technology for general data handling.
There is demand for more efficient data reading for general data handling, however no method to achieve this goal is known.